//
//  SinaTabBar.swift
//  weibo
//
//  Created by guyue on 15/12/31.
//  Copyright © 2015年 guyue. All rights reserved.
//

import UIKit

class SinaTabBar: UITabBar {

    //这个是UIView的指定构造函数
    
    override init(frame: CGRect) {
       //这个函数需要调用父类的构造函数
        
            super.init(frame: frame)
        
            //添加子控件
            setupUI()
    }

    required init?(coder aDecoder: NSCoder) {
        fatalError("init(coder:) has not been implemented")
    }
    
    
    //MARK:--添加子控件
    private func setupUI(){
    
        addSubview(composeButton)
    
    }
    
    override func layoutSubviews() {
        super.layoutSubviews()
        
        //设置frame
        composeButton.center = CGPointMake(bounds.width * 0.5, bounds.height * 0.5)
        
        //遍历subViews,拿到所有的子类,判断一下,是否是UITabBarButton,是的话就改变frame,不是就不管
        
        //定义一个索引,来记录TabBarButton的个数
        var index = 0
        
        // 根据索引的计算 x 的值
        let width = bounds.width * 0.2
        
        
       // printLog(subviews)
        //print("------------")
        for subview in subviews {
        
            //判断一下是否是UITabbarButton,  因为此处的UITabBarButton是在下面赋值的,所以直接解包就可以用(肯定有值)
            if subview.isKindOfClass(NSClassFromString("UITabBarButton")!){
            
               // print("找到了")
                
            //是的话就改变frame
                subview.frame = CGRectMake(CGFloat(index) * width, bounds.origin.y, width, bounds.height)
                
                index++
                
                //不加下面的判断第三个TabBarbutton会和中间的发布按钮重叠,因为只会遍历四个,所以在遍历第三个的时候,让索引加一
                
                if index == 2 {
                    index++
                }
            
            }
            
           // print(subview)
        
        }
        
        
        
        
    }
    
    // 1.添加button 2.修改frame
    
    //MARK:--懒加载一个button
    lazy var composeButton:UIButton = {
     
        let button = UIButton(type: UIButtonType.Custom)
        
        //设置属性
        button.setBackgroundImage(UIImage(named: "tabbar_compose_button"), forState: UIControlState.Normal)
        button.setBackgroundImage(UIImage(named: "tabbar_compose_button_highlighted"), forState: UIControlState.Highlighted)
        
        //添加加号
        button.setImage(UIImage(named: "tabbar_compose_icon_add"), forState: UIControlState.Normal)
        button.setImage(UIImage(named: "tabbar_compose_icon_add_highlighted"), forState: UIControlState.Highlighted)
        
        //设置宽高
        
        button.sizeToFit()
        return button
    
    }()
    
    
}
